class PromptSampler:
    """
    基于当前程序和表现最佳的示例为 LLM 构建提示。
    """
    def build_prompt(self, current_program: str, best_programs: list) -> str:
        """
        为 LLM 构建一个详细的提示，以生成代码修改。
        """
        prompt = "你是一位专家级软件开发者。你的任务是迭代地改进所提供的代码库。\n"
        prompt += "请对'当前程序'提出修改建议，以提高其性能分数。\n"
        prompt += "目标是最小化'main_score'。\n"

        if best_programs:
            prompt += "\n--- 之前表现良好的程序 ---\n"
            for prog, score in best_programs:
                prompt += f"分数: {score['main_score']}\n"
                prompt += "```python\n"
                prompt += prog
                prompt += "\n```\n\n"

        prompt += "\n--- 当前程序 ---\n"
        prompt += "```python\n"
        prompt += current_program
        prompt += "\n```\n\n"

        prompt += "请使用以下 diff 格式提供你的修改：\n"
        prompt += "<<<<<<<< SEARCH\n"
        prompt += "# 需要被替换的确切代码\n"
        prompt += "========\n"
        prompt += "# 新的代码\n"
        prompt += ">>>>>>>> REPLACE\n"
        
        return prompt